package com.platform.base.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.base.domain.MeterInfo;
import com.platform.base.domain.ValveInfo;

/**
 * 阀门信息Service接口
 * 
 * @author wangqi
 * @date 2020-09-25
 */
public interface IValveInfoService extends IService<ValveInfo>
{
    /**
     * 查询阀门信息列表
     * 
     * @param valveInfo 阀门信息
     * @return 阀门信息集合
     */
    public List<ValveInfo> selectValveInfoList(ValveInfo valveInfo);

    /**
     * 查询阀门信息
     *
     * @param valveId 阀门Id
     * @return 阀门信息
     */
    public ValveInfo selectValveInfoById(String valveId);

    /**
     * 查询阀门信息
     *
     * @param valveId 阀门Id
     * @param collectorId 阀门Id
     * @return 阀门信息
     */
    public ValveInfo selectValveInfoBytId(String valveId,String collectorId);


    /**
     * 新增阀门信息
     * 
     * @param valveInfo 阀门信息
     * @return 结果
     */
    public int insertValveInfo(ValveInfo valveInfo);

    /**
     * 修改阀门信息
     * 
     * @param valveInfo 阀门信息
     * @return 结果
     */
    public int updateValveInfo(ValveInfo valveInfo);

    /**
     * 批量删除阀门信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteValveInfoByIds(String ids);

    /**
     * 校验阀门是否唯一
     *
     * @param valveInfo 阀门信息
     * @return 结果
     */
    public String checkValveUnique(ValveInfo valveInfo);

    /**
     * 根据采集器ID更新阀门登记状态
     *
     * @param collectorId 采集器信息
     * @return 结果
     */
    public int updateValveInfoByCollectorId(String collectorId);

    /**
     * 导入阀门信息
     *
     * @param infoList 阀门信息
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importInfo(List<ValveInfo> infoList, Boolean isUpdateSupport, String operName);

    /**
     * 阀门登记
     *
     * @param valveIds 阀门信息
     * @param operName 操作用户
     * @return 结果
     */
    public String registerInfo(String[] valveIds, String operName) throws InterruptedException;

    /**
     * 阀门注销
     *
     * @param valveIds 阀门信息
     * @param operName 操作用户
     * @return 结果
     */
    public String cancelInfo(String[] valveIds, String operName) throws InterruptedException;

    /**
     * 设置阀门开度
     *
     * @param valveIds 阀门id
     * @param hex 阀门开度值
     * @return 结果
     */
    public String apertureInfo(String[] valveIds, String hex) throws InterruptedException;

    /**
     * 限制阀门开启
     *
     * @param valveIds 阀门信息
     * @param hex 阀门开度值
     * @return 结果
     */
    public String limitInfo(String[] valveIds, String hex) throws InterruptedException;

    /**
     * 查询阀门信息列表
     *
     * @param locationId 热信息
     * @return 热信息集合
     */
    public List<ValveInfo> selectValveInfoBylocationId(String locationId);
    /**
     * 查询阀门信息列表
     *
     * @param collectorId 热信息
     * @return 热信息集合
     */
    public List<ValveInfo> selectValveInfoBycollectorId(String collectorId);


    /**
     * 读取阀门数据
     *
     * @param valveIds 阀门信息
     * @return 结果
     */
    public String checkInfo(String[] valveIds) throws InterruptedException;

    /**
     * 查询阀门信息列表
     *
     * @return 阀门信息集合
     */
    public List<ValveInfo> selectCollectorInfoEq();
    /**
     * 设置阀门开度
     *
     * @param valveIds 阀门id
     * @param hex 阀门开度值
     * @return 结果
     */
    public String aperturemaxInfo(String[] valveIds, String hex) throws InterruptedException;
    /**
     * 设置阀门开度
     *
     * @param valveIds 阀门id
     * @param hex 阀门开度值
     * @return 结果
     */
    public String apertureminInfo(String[] valveIds, String hex) throws InterruptedException;
    /**
     * 设置阀门控温上限
     *
     * @param valveIds 阀门id
     * @param hex 阀门开度值
     * @return 结果
     */
    public String tempmaxInfo(String[] valveIds, String hex) throws InterruptedException;
    /**
     * 阀门注销
     *
     * @param valveIds 阀门信息
     * @param operName 操作用户
     * @return 结果
     */
    public String outletonInfo(String[] valveIds, String operName) throws InterruptedException;
    /**
    * 阀门注销
    *
    * @param valveIds 阀门信息
    * @param operName 操作用户
    * @return 结果
    */
    public String outletoffInfo(String[] valveIds, String operName) throws InterruptedException;

    /**
     * 设置阀门回水温度
     *
     * @param valveIds 阀门id
     * @param hex 阀门开度值
     * @return 结果
     */
    public String outletInfo(String[] valveIds, String hex) throws InterruptedException;

}
